


#ifndef PF_DIALOGFACTORYADAPTER_H
#define PF_DIALOGFACTORYADAPTER_H

#include "pf_dialogfactoryinterface.h"
#include "pf_block.h"
#include "pf_layer.h"
#include "lx_Export.h"

class PF_BlockList;
class PF_LayerList;

/**
 * Adapter for dialog factory interface.
 * Used when no factory object was set.
 */
class LX_EXPORT PF_DialogFactoryAdapter : public PF_DialogFactoryInterface {
public:
    PF_DialogFactoryAdapter() {}
    virtual ~PF_DialogFactoryAdapter() {}
    virtual void requestPreviousMenu() {}
    virtual void requestWarningDialog(const PF_String& ) {}
    virtual PF_GraphicView* requestNewDocument(const PF_String& = PF_String::null, 
			PF_Document* =NULL) { return NULL; }
    virtual PF_Layer* requestNewLayerDialog(
        PF_LayerList* = NULL) { return NULL; }
    virtual PF_Layer* requestLayerRemovalDialog(
        PF_LayerList* = NULL) { return NULL; }
    virtual PF_Layer* requestEditLayerDialog(
        PF_LayerList* = NULL) { return NULL; }
    virtual PF_BlockAttribute requestNewBlockDialog(PF_BlockList* ) 
		{ return PF_BlockAttribute(); }
    virtual PF_Block* requestBlockRemovalDialog(
        PF_BlockList* ) { return NULL; }
    virtual PF_BlockAttribute requestBlockAttributesDialog(
        PF_BlockList* ) { return PF_BlockAttribute(); }
    virtual void requestEditBlockWindow(
        PF_BlockList* ) {}
	virtual void closeEditBlockWindow(PF_Block* ) {}
    virtual PF_String requestImageOpenDialog() { return ""; }
    virtual void requestOptions(PF_ActionInterface* , 
		bool , bool = false) {}
    virtual void requestSnapDistOptions(double& , bool ) {}
    virtual bool requestAttributesDialog(PF_AttributesData& ,
		PF_LayerList& ) { return false; }
    virtual bool requestMoveDialog(PF_MoveAttribute& ) { return false; }
    virtual bool requestRotateDialog(PF_RotateAttribute& ) { return false; }
    virtual bool requestScaleDialog(PF_ScaleAttribute& ) { return false; }
    virtual bool requestMirrorDialog(PF_MirrorAttribute& ) { return false; }
    virtual bool requestMoveRotateDialog(PF_MoveRotateAttribute& ) { return false; }
    virtual bool requestRotate2Dialog(PF_Rotate2Attribute& ) { return false; }
    virtual void requestToolBar(LX_Define::ToolBarId ) {}
    virtual void requestToolBarSelect(PF_ActionInterface* ,
                                      LX_Define::ActionType ) {}
    virtual bool requestModifyEntityDialog(PF_Entity* ) { return false; }
    virtual bool requestTextDialog(PF_Text* ) { return false; }
    virtual bool requestHatchDialog(PF_Hatch* ) { return false; }
    virtual void requestOptionsGeneralDialog() {}
    virtual void requestOptionsDrawingDialog(PF_Graphic& ) {}

    virtual void updateCoordinateWidget(const PF_Vector& ,
										const PF_Vector& ,
										bool =false) {}
    virtual void updateMouseWidget(const PF_String& ,
                                   const PF_String& ) {}
    virtual void updateSelectionWidget(int ) {}
    virtual void commandMessage(const PF_String& ) {}
	virtual bool isAdapter() { return true; }
};

#endif
